import java.util.Random;
import java.util.Scanner;

import static java.lang.Math.pow;
import static java.lang.Math.sqrt;

public class Test {
    static int sum=0;

    public static int arraySum(int[] array,int len) {
        if (len!=0) {
            System.out.println("1");
            sum+=array[len-1];
           return arraySum(array,len-1);
        }
        return sum;
    }
    
    public static void main(String[] args) {
        int[]array={1,2,3,4,5,6,18};
        System.out.println(arraySum(array, array.length));
    }
    public static int func(int x) {
        if (x<=1) {
            return x;
        }
        return func(x-1)+func(x-2);

    }
    public static int getAge(int age){
        int p=0;
        while (p<4) {
            p+=1;
            age+=2;
        }
        return age;
    }

    public static boolean fund(double x) {
        //查找质数
        int i=0;
        for ( i = 2; i < sqrt(x); i++) {
            if (x%i==0) {
                return false;
            }
        }
        return true;
    }
    public static void main13(String[] args) {
        //设 a=3*2^(x-1)-1, b=3*2^x-1,c=9*2^(2x-1)-1，
        // 这里x是大于1的自然数，如果a、b、c全是素数的话。那么2*x*ab与2*x*c。便是一对相亲和数。

        for (int x = 2; x < 100; x++) {
            double a=3*pow(2,x-1)-1;
            double b=3*pow(2,x)-1;
            double c=9*pow(2,2*x-1)-1;
            if (fund(a) &&fund(b)&&fund(c)) {
                System.out.print(2*x*a*b+" ");
                System.out.println(2*x*c);
            }
        }
    }
    public static void main12(String[] args) {
        //一对相亲数是指：甲的约数之和等于乙，乙的约数之和等于甲。求1000以内的相亲数
        int[]array=new int[100000];
        int z=0;
        //甲的约数之和等于乙
        //乙的约数之和等于甲
        for (int i = 1; i < 10000; i++) {
                int sum=0;//记录约数之和
            for (int j = 1; j <i; j++) {
                if (i%j==0) {
                    sum+=j;
                }
                //它的值下标记录着它具有的约束和
                array[i]=sum;
            }
        }
        for (int i = 0; i < array.length; i++) {
            if (i==array[array[i]]&&i!=array[i]) {
                System.out.println(i+" "+array[i]);
            }
        }
    }
    public static void main11(String[] args) {
        String str="abcabacdef";
        int[]array=new int[27];
        for (int i = 0; i < str.length(); i++) {
           char c=str.charAt(i);
           array[c-97]++;
        }
        for (int i = 0; i < str.length(); i++) {
            if (array[str.charAt(i)-97]==1) {
                System.out.println(i);
                break;
            }
        }
    }
    public static void main10(String[] args) {
        //给定一个3乘以3的二维数组，里面的数据随机生成。分别求出两个对角线的元素之和。
        int[][]array=new int[3][3];
        int sum1=0;
        int sum2=0;
        Random random=new Random();
        for (int i = 0; i <array.length ; i++) {
            for (int j = 0; j < array[0].length; j++) {
                array[i][j]=random.nextInt(100);
                if (i==j) {
                    sum1+=array[i][j];
                } if (i+j==2) {
                    sum2+=array[i][j];
                }
            }
        }
        System.out.println(sum1);
        System.out.println(sum2);

    }
    public static void main9(String[] args) {
        //1、有5个人坐在一起，问第五个人多少岁？他说比第4个人大2岁。问第4个人岁数，他说比第3个人大2岁。问第三
        //个人，又说比第2人大两岁。问第2个人，说比第一个人大两岁。最后问第一个人，他说是10岁。请问第五个人多
        //大？
        int A=10;//第一个人
        int b=getAge(10);
        System.out.println(b);
    }
    public static void main8(String[] args) {
        int ch[]={1,2,3};
        System.out.println(ch);
    }
    public static void main7(String[] args) {
        //有一对兔子，从出生后第3个月起每个月都生一对兔子，小兔子长到第三个月后每个月又生一对兔子，假如兔子
        //都不死，问第n个月的兔子对数为多少？
        System.out.println(func(6));
    }
    public static void main6(String[] args) {
        //一球从100米高度自由落下，每次落地后反跳回原高度的一半；再落下，求它在 第10次落地时，共经过多 少
        //米？第10次反弹多高？
        double sum=0;//记录走了多长距离
        double p=0;//记录第十次反弹多高
        double height=100;//
        for (int i = 0; i < 10; i++) {
            sum+=height;
            height/=2;
            sum+=height;
        }
        System.out.println(sum-height);
        System.out.println(height);
    }
    public static void main5(String[] args) {
        //猴子吃桃问题。猴子第一天摘下若干个桃子，当时就吃了一半，还不过瘾，就又吃了一个。第二天又将剩下的
        //桃子吃掉一半，又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第 10 天在想吃的时候就剩一个桃子了,
        //求第一天共摘下来多少个桃子？
        int sum=1;
        for (int i = 0; i < 9; i++) {
            sum=(sum+1)*2;
        }
        System.out.println(sum);
    }
    public static void main4(String[] args) {
        //1、编程求 1~10000 之间的所有“完全数”，完全数是该数的所有因子之和等于该数的数。例如，6 的因子有 1、2、
        //3，且 6=1+2+3，所以 6 是完全数
        int []array=new int[1000];
        int z=0;
        for (int i = 2; i <=10000 ; i++) {

            int n=i;//
            int sum=0;
            int m=2;
            while (n!=m) {
                if (n%m==0) {
                    sum+=m;
                    m++;
                } else {
                    m++;
                }
            }if (sum+1==i)
            array[z++]=sum+1;
        }
        for (int i = 0; i < z; i++) {
            System.out.println(array[i]);
        }
    }
    public static void main3(String[] args) {
        //编写程序，对输入的年、月、日，给出该天是该年的第多少天
        Scanner scanner=new Scanner(System.in);
        int year=scanner.nextInt();
        int month=scanner.nextInt();
        int day=scanner.nextInt();
        switch (month) {
            case 12:
               day+=31;
            case 11:
               day+=30;
            case 10:
                day+=31;
            case 9:
                day+=30;
            case 8:
                day+=31;
            case 7:
                day+=31;
            case 6:
                day+=30;
            case 5:
                day+=31;
            case 4:
                day+=30;
            case 3:
                day+=31;
            case 2:
                //只有二月是28或29天
                if (year%400==0||(year%4==0&&year%100!=0)) {
                    day+=29;
                } else {
                    day+=28;
                }
            case 1:
                day+=31;
        }
        if (month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
            day-=31;
        } else if (month==2) {
            //只有二月是28或29天
            if (year%400==0||(year%4==0&&year%100!=0)) {
                day-=29;
            } else {
                day-=28;
            }
        } else {
            day-=30;
        }
        System.out.println(day);
    }
    public static void main2(String[] args) {
        //小写转大写
        Scanner scanner=new Scanner(System.in);
        String p=scanner.next();
        int size=p.length();
        StringBuilder stringBuilder=new StringBuilder();
        for (int i = 0; i < size; i++) {
            if (p.charAt(i)>='a'&&p.charAt(i)<='z') {
                char c=p.charAt(i);
                c-=32;
                stringBuilder.append(c);
            } else {
                stringBuilder.append(p.charAt(i));
            }
        }
        p=stringBuilder.toString();
    }
    public static void main1(String[] args) {
        Scanner scanner=new Scanner(System.in);
        Random random=new Random();
        int p= random.nextInt(100);
      //  System.out.println(p);
        while (true) {
           int c=scanner.nextInt();
            if(c>p) {
                System.out.println("猜大了");
            } else if(c<p) {
                System.out.println("猜小了");
            } else {
                System.out.println("猜对了");
                break;
            }
        }
    }
}
